package javabase;

/**
 * Created by mHandler on 2018/5/29 0029.
 * Description:
 */
public class StringTest {

    public static void main(String[] args) {

        //test1
        String aa = new String("a") + new String("b");
        System.out.println(aa.intern() == aa);//jdk1.7以后复制当前引用到常量池中，故两者指向同一个常量池中变量 返回为true

        System.out.println("-----------------");
        //test2 第一条语句打印的结果为false，第二条语句打印的结果为true，这说明javac编译可以对字符串常量直接相加的表达式进行优化，
        // 不必要等到运行期去进行加法运算处理，而是在编译时去掉其中的加号，直接将其编译成一个这些常量相连的结果。
        //故 String str = "a"+"b"+"c"+"d"只产生了一个对象 "abcd".
        String s1 = "a";
        String s2 = s1 + "b";
        String s3 = "a" + "b";
        System.out.println(s2 == "ab");
        System.out.println(s3 == "ab");
        //System.out.println(new StringTest().testInt());
        System.out.println("abcde".hashCode()+"");

    }

    public boolean testInt(){
        int i=1;
        return i == 1?true:false;
    }


}
